// 导入数据库操作模块
const db = require('../db/index')
// 导入处理密码的js
const bcrypt = require('bcryptjs');
// 获取用户基本信息的处理函数
exports.getUserInfo=(req,res)=>{
 const sql  = 'select * from ev_users where id=?'
 db.query(sql,req.user.id,(err,results)=>{
  if(err) return res.cc(err)
    // sql语句执行成功,但返回行数不等于1 也相当于失败
    if(results.length !==1) return res.cc('获取用户信息失败!')
    // 成功，将用户信息返回给客户端
    res.send({
      status:0,
      message:'获取用户信息成功',
      data: results[0]
    })
 })
}
// 更新用户基本信息处理函数
exports.updateUserInfo=(req,res)=>{
  // 定义待执行的sql语句
  const sql = 'update ev_users set ? where id=?' //只要执行的是update语句,返回的就是一个对象,对象中有一个affectedRows代表影响的行数
  db.query(sql,[req.body,req.body.id],(err,results)=>{
    if(err) return res.cc(err)
    // sql语句执行成功,但返回行数不等于1 也相当于失败
    if(results.affectedRows !=1) return res.cc('更新用户信息失败!')
     
    // 成功
     res.cc('更新用户信息成功',0)
  })
}
// 更新用户密码的处理函数
exports.updatePassword=(req,res)=>{
  // 根据ID查询用户的信息
  const sql = 'select * from ev_users where id = ?'
  // 执行根据id查询用户的信息的sql语句
  db.query(sql,req.user.id,(err,results)=>{
    // console.log(req.user);
    if(err) return res.cc(err)
    if(results.length !== 1) return res.cc('用户不存在！')
    // 判断用户输入的旧密码是否正确
    const compareResult=bcrypt.compareSync(req.body.oldPwd,results[0].password)
    if(!compareResult) return res.cc('旧密码错误')
  //  定义更新密码的sql语句
  const sql = 'update ev_users set password=? where id = ?'
  // 对新密码进行加密
  const newPwd = bcrypt.hashSync(req.body.newPwd,10)
  db.query(sql,[newPwd,req.user.id],(err,results)=>{
    // sql语句执行失败
    if(err) return res.cc(err)
    // 判断影响的行数
    if(results.affectedRows !==1) return res.cc('密码更新失败，请重试！')

    // 密码更新成功
    res.cc('密码更新成功',0)
  })
  })
}
// 更新用户头像的处理函数
exports.updateAvatar=(req,res)=>{
  // 定义更新用户头像的sql语句
  const sql = 'update ev_users set user_pic=? where id = ?'
  // 调用语句 更新对应的用户头像
  db.query(sql,[req.body.avatar,req.user.id],(err,results)=>{
    console.log(req)
    if(err) return res.cc(err)
    if(results.affectedRows !==1 ) return res.cc('头像更新失败，请重试！')
    // 更新用户头像
    return res.cc('更新头像成功',0)
  })
}